package com.yzs.controller.admin;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.yzs.common.bean.R;
import com.yzs.entity.MsgInfo;
import com.yzs.entity.Session;
import com.yzs.mapper.MsgInfoMapper;
import com.yzs.mapper.SessionMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@CrossOrigin
@RequestMapping("/msgInfo")
public class MsgInfoController {
    @Autowired
    private MsgInfoMapper msgInfoMapper;

    @Autowired
    private SessionMapper sessionMapper;

    // 消息列表
    @GetMapping("/msgList")
    public R msgList(@RequestParam Integer sessionId){
        Session session = sessionMapper.selectById(sessionId);
        if(session == null){
            return R.ok();
        }
        Integer fromUserId = session.getUserId();
        Integer toUserId = session.getToUserId();
        QueryWrapper<MsgInfo> wrapper = new QueryWrapper<>();
        wrapper.eq("to_user_id",toUserId).eq("from_user_id",fromUserId).or().eq("to_user_id",fromUserId).eq("from_user_id",toUserId);
        List<MsgInfo> msgInfoList = msgInfoMapper.selectList(wrapper);
        // 更新消息已读
        wrapper.clear();
        UpdateWrapper<MsgInfo> msgInfoUpdateWrapper = new UpdateWrapper<>();
        msgInfoUpdateWrapper.eq("from_user_id",fromUserId).eq("to_user_id",toUserId).set("unread_flag",1);
        msgInfoMapper.update(null,msgInfoUpdateWrapper);
        // 更新会话里面的未读消息
        UpdateWrapper<Session> sessionUpdateWrapper = new UpdateWrapper<>();
        sessionUpdateWrapper.eq("user_id",fromUserId).eq("to_user_id",toUserId).set("unread_count",0);
        sessionMapper.update(null,sessionUpdateWrapper);
        return R.ok(msgInfoList);
    }


}
